import { Button, Column, Dialog, DialogTrigger, Heading, Icon, Popover, Row, StatusLight, Text, } from '@umami/react-zen'; import { isSameDay } from 'date-fns'; import { LoadingPanel } from '@/components/common/LoadingPanel'; import { useMessages, useMobile, useSessionActivityQuery, useTimezone } from '@/components/hooks'; import { Eye, FileText } from '@/components/icons'; import { EventData } from '@/components/metrics/EventData'; import { Lightning } from '@/components/svg'; export function SessionActivity({ websiteId, sessionId, startDate, endDate, }: { websiteId: string; sessionId: string; startDate: Date; endDate: Date; }) { const { formatMessage, labels } = useMessages(); const { formatTimezoneDate } = useTimezone(); const { data, isLoading, error } = useSessionActivityQuery( websiteId, sessionId, startDate, endDate, ); const { isMobile } = useMobile(); let lastDay = null; return ( {data?.map(({ eventId, createdAt, urlPath, eventName, visitId, hasData }) => { const showHeader = !lastDay || !isSameDay(new Date(lastDay), new Date(createdAt)); lastDay = createdAt; return ( {showHeader && {formatTimezoneDate(createdAt, 'PPPP')}} {formatTimezoneDate(createdAt, 'pp')} {eventName ? : } {eventName ? formatMessage(labels.triggeredEvent) : formatMessage(labels.viewedPage)} {eventName || urlPath} {hasData > 0 && } ); })} ); } const PropertiesButton = props => { return ( ); };